<?php
/**
 * Created by PhpStorm.
 * User: wanglin
 * Date: 18-5-3
 * Time: 下午12:20
 */
namespace app\common\model;


/**
 * Class ArticleCategory
 * @author  王崇全
 * @date    2018/12/18 11:03
 * @package app\common\model
 */
class ArticleCategory extends Catalog
{
    const TABLENAME = 'article_category';
    protected $model;

    public function __construct()
    {
        parent::__construct(self::TABLENAME);
    }

    /**
     * 添加栏目
     * @author 王崇全
     * @date   2018/12/18 11:04
     * @param string $title 标题
     * @param string $pid   父级id
     * @return string 返回新增的id
     * @throws \Exception
     */
    public function addCategory(string $title, string $pid = null)
    {
        $res = $this->add($title, $pid);

        return $res;
    }

    /**
     * 编辑栏目
     * @author 王崇全
     * @date
     * @param string      $gid   分组ID
     * @param string|null $title 分组名称
     * @param string|null $pgid  父组ID
     * @return static 返回受影响的行数
     * @throws \Exception
     */
    public function editCategory(string $gid, string $title = null, string $pgid = null)
    {
        return $this->edit($gid, $title, $pgid);
    }

    /**
     * 删除栏目
     * @author 王崇全
     * @param string $id 栏目id
     * @return int 返回受影响的行数
     * @throws \Exception
     */
    public function delCategory(string $id)
    {
        return $this->del($id);
    }

    /**
     * 栏目列表
     * @author 王崇全
     * @date
     * @param string|null $pgid    父组ID
     * @return array|null 没有数据返回 [] array[
     *                             'id' =>
     *                             'title' => '目录名称',
     *                             'child' => '子节点'
     *                             ]
     * @throws
     */
    public function categoryList(string $pgid = null)
    {
        return $this->getList($pgid);
    }

    /**
     * 栏目信息
     * @author 王崇全
     * @date   2018/12/18 16:07
     * @param string $cid 栏目ID
     * @return array [pid=>"父ID",title=>名称]
     * @throws
     */
    public function catalogInfo(string $cid)
    {
        return $this->info($cid);
    }

}